Інформація про навчальний заклад

ВУЗ:
Інші
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2024
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Алгоритми та методи обчислень

Частина тексту файла

Кафедра ЕОМ Звіт з лабораторної роботи № 6 з дисципліни: “Алгоритми та методи обчислень” Варіант № 7 Мета роботи: ознайомитися з парадигмою реактивного програмування Вхідні дані 7: 565, 566, 561 Лістинг програми: #define WORK_SPACE int a = 0, b = 0 #define EXPRESSION ( C2*a + C1*b + C0 ) #define RUN_FOR_UPDATE EXPRESSION #define C2 565 #define C1 566 #define C0 561 #include "rxcpp/rx.hpp" namespace rx = rxcpp; namespace rxsub = rxcpp::subjects; namespace rxu = rxcpp::util; #include <cctype> #include <clocale> WORK_SPACE; // r = C2*a + C1*b + C0; void runForUpdateA(int value){ a = value; } void runForUpdateB(int value){ b = value; } void runForUpdateR(){ std::cout << "(C2=" << C2 << " C1=" << C1 << " C0=" << C0 << " a=" << a << " b=" << b << ")" << std::endl; std::cout << "r = C2*a + C1*b + C0 = " << RUN_FOR_UPDATE << std::endl; } int main() { std::cout << "(use key a, b, r; use <Ctrl+C> for exit)" << std::endl << "Run('r'<= merge('a', 'b')):" << std::endl; auto keys = rx::observable<>::create<int>( [](rx::subscriber<int> dest){ for (;;) { int key = std::cin.get(), value; if (std::tolower(key) == 'a') { std::cout << "="; std::cin >> value; runForUpdateA(value); } else if (std::tolower(key) == 'b') { std::cout << "="; std::cin >> value; runForUpdateB(value); } }). } dest.on_next(key); publish(); auto a = keys. filter([](int key){return std::tolower(key) == 'a'; }); auto b = keys. filter([](int key){return std::tolower(key) == 'b'; }); auto r = keys. filter([](int key){return std::tolower(key) == 'r'; }); r.merge(a, b). subscribe([](int key){ if (std::tolower(key) == 'r'){ runForUpdateR(); }); } else{ }  std::cout << "value updated" << std::endl; keys.connect(); // run the loop in create return 0; } Висновок - ознайомився з парадигмою реактивного програмування
Антиботан аватар за замовчуванням

14.10.2018 19:10

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини